package com.jason.game.online.utils;

import android.text.TextUtils;

import java.text.DecimalFormat;

/**
 * Created by xuzhiwei on 15/8/6.
 */
public class DataConvertUtils {

  /**
   * 亿为基数
   * */
  public static final int MAX_MILLION_HIT_NUM = 100000000;

  /**
   * 十万基数
   */
  public static final int MAX_HIT_NUM = 100000;

   /**
   *1wan 基数
   */
  private static final int CARDINAL_NUMBER = 10000;

  /**
   * 超过1万，以十万为单位
   *
   * @param value 点击数量
   */
  public static String convertHits(String value) {

    int hits = 0;

    try{
      hits = Integer.parseInt(value);
    }catch (Exception e) {

    }


    String result = convertNumber(hits) + "人在玩";
    return result;
  }

  /**
   * 超过1万，以十万为单位,统一方法
   *
   * @param value 点击数量
   */
  public static String convertNumber(int value) {
    int hits = value;
    String result = "";
    if (hits >= MAX_MILLION_HIT_NUM) {
      result = division(hits, MAX_MILLION_HIT_NUM) + "亿";
    } else if (hits >= MAX_HIT_NUM) {
      result = division(hits, CARDINAL_NUMBER) + "万";
    } else {
      result = String.valueOf(value);
    }
    return result;
  }

  /**
   * 超过10万，以万维单位
   * @param value
   * @return
   */
  public static String convertHitsOfW(int value) {
    return convertNumber(value);
  }

  /**
   * 超过1万，以万为单位
   *
   * @param value 点击数量
   */
  public static String reformatHits(int value) {
    return convertNumber(value);
  }



  /**
   * 超过1万，以万为单位
   *
   * @param value 点击数量
   */
  public static String reformatHits(String value) {
    if(TextUtils.isEmpty(value)) {
      return "0";
    }
    int hits = 0;

    try{
      hits = Integer.parseInt(value);
    }catch (Exception e) {

    }

    return convertNumber(hits);
  }

  /**
   * 除法保留一位小数，整数情况去掉.0
   * @param a
   * @param b
   * @return
   */
  public static String division(int a ,int b){
    String result = "";
    float num =(float)a/b;

    DecimalFormat df = new DecimalFormat("0.0");
    result = df.format(num);

    //替换
    result = result.replace(".0", "");

    return result;

  }

  /**
   * 针对json中含有转义符进行处理，避免出现未结束解析异常
   */
  public static String handleSpecialJsonString(String oldJson) {
    char[] temp = oldJson.toCharArray();
    int n = temp.length;
    for (int i = 0; i < n; i++) {
      if (temp[i] == ':' && temp[i + 1] == '"'&&temp[i + 2] != ',') {
        for (int j = i + 2; j < n; j++) {
          if (temp[j] == '"') {
            if (temp[j + 1] != ',' && temp[j + 1] != '}') {
              temp[j] = '”';
            } else if (temp[j + 1] == ',' || temp[j + 1] == '}') {
              break;
            }
          }
        }
      }
    }
    return new String(temp);
  }
}
